// package hn.cch.security;
//
// import org.springframework.security.authentication.AbstractAuthenticationToken;
// import org.springframework.security.core.GrantedAuthority;
// import org.springframework.stereotype.Component;
//
// import java.util.Collection;
//
// @Component
// public class MyAbstractAuthenticationToken extends AbstractAuthenticationToken {
//
//     // 用户对象
//     private final Object principal;
//
//     public MyAbstractAuthenticationToken(Object principal) {
//         super(null);
//         setAuthenticated(false);
//         this.principal = principal;
//     }
//
//     public MyAbstractAuthenticationToken(Collection<? extends GrantedAuthority> authorities, Object principal) {
//         super(authorities);
//         super.setAuthenticated(true);
//         this.principal = principal;
//     }
//
//     @Override
//     public void setAuthenticated(boolean authenticated) {
//         if (authenticated) {
//             throw new IllegalArgumentException("illegal argument");
//         }
//         super.setAuthenticated(false);
//     }
//
//     @Override
//     public Object getCredentials() {
//         return null;
//     }
//
//     @Override
//     public Object getPrincipal() {
//         return principal;
//     }
// }
